package com.iris.live.services.services;

import com.iris.live.services.data.models.RegionDirectoryModel;
import com.iris.live.services.models.PageData;
import com.iris.live.services.models.RequestBase;
import com.iris.live.services.models.ResultData;
import com.iris.live.services.vo.RegionVO;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by ThinkPad on 2016/9/5
 */
public interface ApiForLiveService {

    /**
     * 获取本店可可以接待人员
     *
     * @param permit
     * @return
     */
    public List getAvailableUser(String permit);

    /**
     * 获取经销商内指定状态的用户
     * @param permit
     * @param status
     * @return
     */
    public List getAvailableUser(String permit, String status);

    /**
     * 获取本店，选取角色可使用功能
     *
     * @param permit
     * @param roleName
     * @return
     */
    public List getAvailablePermissions(String permit, String roleName);

    /**
     * 根据主键查询出未删除经销商
     *
     * @param permit
     * @return
     */
    public List getLshDistributorByPermit(String permit);

    /**
     * 获取车型详细不为空的LSH车型list
     *
     * @return
     */
    List getLshCarNotBlank();

    /**
     * 根据传入的用户名和密码验证登陆
     *
     * @param userName
     * @param pwd
     * @return
     */
    public Map validateLoginByUserNameAndPwd(String permit, String userName, String pwd,Integer groupType);

    /**
     * 根据车架号查询到GP1、GP2、GP3
     */
    public Map getGPByVin(String vinList);

    public PageData getStoreListByPermit(GetPermitRequest request, String permit);

    public List getNowTime();

    public boolean isSetPermit(String permit);

    public List getLatestUpdatetimeByPermit(String permit);

    public PageData getBenzRental(GetBenzRentalRequst req);

    public boolean savaBenzBatch(List<SavaBenzBatchRequest> reqList, String permit, String userName);

    public List getAllArea(String permit);

    public PageData getStoreListByPermit(Map map, String license, RequestBase req);

    public List getCusRecordByPhone(GetCusRecordByPhoneReq req);

    public ResultData getCusFlowAndClueAndOrder(String license, GetCusFlowAndClueAndOrderReq req);

    ResultData getAllAreaAndPMA();

    PageData getOtherStoreInfoByPermit(Map map, String license, RequestBase req);

    List<RegionVO> getRegioncountry();


    static class GetCusRecordByPhoneReq {
        public String permit;
        public String phone;
    }

    static class GetValidateLoginByUserNameAndPwd {
        public String userName;
        public String pwd;
        public String permit;
        public String roleName;
        public Integer groupType;
    }

    static class GetPermitRequest extends RequestBase {
        public String param;
    }

    static class GetBenzRentalRequst extends RequestBase {
        public Timestamp 开始时间;
        public Timestamp 结束时间;
        public double 年利率1;
        public double 年利率2;
        public String 品牌;
        public String 级别;
    }

    static class SavaBenzBatchRequest extends RequestBase {
        public String 车型编号;
        public String value1;
        public String value2;
        public String value3;
        public String value4;
        public String value5;
        public String value6;
        public String value7;
        public String value8;
        public String value9;
        public String value10;
        public String value11;
        public String value12;
        public Date 开始日期;
        public Date 结束日期;
        public String 产品编号;
    }

    static class GetCusFlowAndClueAndOrderReq {
        public String date;
        public String param;
    }
}
